package com.ssm.student.service.impl;
/**
 *实现业务及流程当中的内容
 */

import com.ssm.student.dao.RoleLimitMapper;
import com.ssm.student.dao.RoleMapper;
import com.ssm.student.model.Role;
import com.ssm.student.service.RoleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class RoleServiceImpl implements RoleService {

     @Autowired
     private RoleMapper roleMapper;
     private RoleLimitMapper roleLimitMapper;

    /**
     * 角色方法实现
     * @param role 角色实体
     * @return 是否成功（-1：有重复信息）
     */

    @Override
    public int AddRole(Role role) {
        int returnInt=0;
        /*1.业务判断
        （1）角色名不能重复

        （1）判断角色
        * */
        int juesemingchengCount=0;
        juesemingchengCount=roleMapper.getJue(role.getJuesemingcheng());
       if (juesemingchengCount<1){
           //2.数据添加
          int addRoleInt=roleMapper.insertRole(role);
           //3.返回值设置
           returnInt=addRoleInt;

       }else {
           returnInt=-1;//有相同的角色名称
       }
        return returnInt;
    }

    /**
     * 角色更新
     * @param role 角色实体
     * @return 更新是否成功（-1：更新执行SQL报错）
     */
    @Override
    public int UpdateRole(Role role) {
        int isUpdate=0;
        /*1.没有业务流程的判断*/
        try{
            isUpdate=roleMapper.updateRole(role);
        }catch (Exception e){
            isUpdate=-1;
            //打印更新报错的情况
            System.out.println("更新角色信息时执行SQL报错的原因"+e.getMessage());
        }
        return isUpdate;
    }

    @Override
    public int DeleteRole(int roleid) {
        int delRole=0;
          /*1.有关业务流程的判断
          * (1)删除的角色不能与人员权限中间表有关联*/
             try {
                 //返回的结果总数量小于1才可以删除
              if (roleLimitMapper.getRoleCount(roleid)<1){
                  delRole=roleMapper.delRole(roleid);
              }
             }catch (Exception e){
                 delRole=-1;
                 System.out.println("删除角色信息时执行SQL报错原因为"+e.getMessage());
             }
        return delRole;
    }
}
